<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // function fn(arg) {
    //     console.log(arg);
    // }
    // fn(1);
    // fn([1, 2, 3]);
    // fn(function () {  //函数可以作为参数 到另一个函数中(被该函数的形参接收 可以通过形参调用  -> 至于什么时候调用 -> 看需求)
    //     console.log(1111);
    // });



</script>
<script>
    // 数组的遍历方法 -> 官方给定专门遍历数组的方法


    // list.push(10);  push是数组的方法 10是实际参数

    // 将函数作为参数(实参)传入到另一个函数中  => 回调函数(callback)

    // forEch(callback)  数组遍历 => 传入一个回调函数, 每次循环时执行传入的回调函数(期望循环执行的内容) 
    // 回调函数有三个参数function(item, index, array){}
    // item 循环的当前元素
    // index 循环的当前下标 
    // array 原数组

    // 返回值: undefined 

    var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    var result = list.forEach(function (item, index, array) { // 形参
        console.log(item, index, array);
    })
    // console.log(result);

    // var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    // var sum = 0;
    // list.forEach(function (item, index, array) { // 形参
    //     console.log(item, index, array);
    //     sum += item;
    // })
    // console.log(sum);


    // 流程解析
    // function myEach(list,fn) {
    //     var list = [1, 4, 7, 2, 5, 8, 3, 6, 9];
    //     var fn = function (item, index, array) { // 形参
    //         console.log(item, index, array);
    //     }

    //     for (var i in list) {
    //         // list[i]  循环的当前元素
    //         // i 循环的当前下标
    //         // list  原数组
    //         fn(list[i], i, list); //实际参数
    //     }
    // }


</script>

</html>